package subject_set.offer100;

/**
 * @author haomin
 * @date 2022/10/27 16:50
 **/
public class Offer67 {
    class Solution {
        public int strToInt(String str) {
            str = str.trim();
            if(str.length() == 0) return 0;
            int i = 0;
            if(str.charAt(i) != '-' && str.charAt(i) != '+' && !Character.isDigit(str.charAt(i)))
                return 0;
            boolean isFu = false;
            if(str.charAt(i) == '+') i++;
            else if(str.charAt(i) == '-') {
                i++;
                isFu = true;
            }
            long ans = 0;
            while(i < str.length() && Character.isDigit(str.charAt(i))){
                ans *= 10; ans += (str.charAt(i) - '0');
                if(isFu && ans > Integer.MAX_VALUE) return Integer.MIN_VALUE;
                else if(!isFu && ans > Integer.MAX_VALUE) return Integer.MAX_VALUE;
                else i++;
            }
            return isFu ? (int)(-ans) : (int)ans;
        }
    }
}